home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 2 / Atari Mega Archive CD - Volume 2.iso / minix / up1510b.tgz / up1510b / src / commands / mkdir.c < prev    next >
C/C++ Source or Header  |  1990-07-23  |  899b  |  53 lines

  1. /* mkdir - make a directory        Author: Adri Koppes */
  2.  
  3. #include <sys/types.h>
  4. #include <signal.h>
  5.  
  6. int error = 0;
  7.  
  8. main(argc, argv)
  9. int argc;
  10. char **argv;
  11. {
  12.   if (argc < 2) {
  13.     std_err("Usage: mkdir directory...\n");
  14.     exit(1);
  15.   }
  16.   signal(SIGHUP, SIG_IGN);
  17.   signal(SIGINT, SIG_IGN);
  18.   signal(SIGQUIT, SIG_IGN);
  19.   signal(SIGTERM, SIG_IGN);
  20.   while (--argc) makedir(*++argv);
  21.   if (error) exit(1);
  22. }
  23.  
  24. makedir(dirname)
  25. char *dirname;
  26. {
  27.   char dots[128], parent[128];
  28.   int sl = 0, i = 0;
  29.  
  30.   while (dirname[i])
  31.     if (dirname[i++] == '/') sl = i;
  32.   strncpy(parent, dirname, sl);
  33.   parent[sl] = '\0';
  34.   strcat(parent, ".");
  35.   if (access(parent, 2)) {
  36.     stderr3("mkdir: can't access ", parent, "\n");
  37.     exit(1);
  38.   }
  39.   if (mkdir(dirname, 0777)) {
  40.     stderr3("mkdir: can't create ", dirname, "\n");
  41.     error++;
  42.     return;
  43.   }
  44. }
  45.  
  46. stderr3(s1, s2, s3)
  47. char *s1, *s2, *s3;
  48. {
  49.   std_err(s1);
  50.   std_err(s2);
  51.   std_err(s3);
  52. }
  53.